package com.google.code.lf.commons.exception;

/**
 * Classe représentant la notion d'exception pour argument invalide.
 * 
 * @author gael lorent-fonfrède
 * 
 * @see ManagerException
 */
public class InvalidArgumentException extends ManagerException {
	/** serialVersionUID. */
	private static final long serialVersionUID = -2164954530134045513L;

	/**
	 * Constructeur.
	 * 
	 * @param argName Nom de l'argument, peut-être <code>null</code>.
	 * @param value Valeur de l'argument.
	 */
	public InvalidArgumentException(final String argName, final Object value) {
		super(new StringBuilder("Provided argument ").append((argName == null ? "" : argName)).append(" is invalid (").append(value).append(")").toString());
	}

	/**
	 * Constructeur.
	 * 
	 * @param argName Nom de l'argument, peut-être <code>null</code>.
	 * @param cause Cause de l'exception.
	 */
	public InvalidArgumentException(final String argName, final String cause) {
		super(new StringBuilder("Provided argument ").append((argName == null ? "" : argName)).append(" is invalid: ").append(cause).toString());
	}
}
